'''
需求：进入系统显示功能界面，功能如下

1. 添加学员
2. 删除学员
3. 修改学员信息
4. 查询学员信息
5. 显示所有学员信息
6. 退出系统

步骤分析

1. 显示功能界面
2. 用户输入功能序号
3. 根据用户输入的功能序号，执行不同的功能(函数)
   3.1 定义函数
   3.2 调用函数
'''

# 定义显示功能字典
func_show_dict = {
    1: '添加学员',
    2: '删除学员',
    3: '修改学员信息',
    4: '查询学员信息',
    5: '显示所有学员信息',
    6: '退出系统',
}

# 定义执行功能字典
func_execute_dict = {
    1: 'add_info()',
    2: 'del_info()',
    3: 'modify_info()',
    4: 'search_info()',
    5: 'print_all()',
    6: '退出系统',
}


# 显示功能界面
def show_func():
    print("-"*20)
    print("请选择功能：")
    for key, value in func_show_dict.items():
        print("{}-{}".format(key,value))
    print("-"*20)

# 添加学员信息
info = []
def add_info():
    '''
    添加学员
    :return:
    '''
    new_id = input('请输入学号: ')
    new_name = input('请输入姓名: ')
    new_tel = input('请输入电话号码: ')

    # 声明info是全局变量
    global info

    for i in info:
        if new_name == i['name'] or new_id == i['id'] or new_tel==i['tel']:  # 根据现实情况修改逻辑运算符
            print('该学员已经存在！')
            return
    # 下列代码不要写入 elif 当中
    info_dict = {}
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    info.append(info_dict)
    print(info)

# 删除学员信息
def del_info():
    # 1. 输入要删除的学员姓名
    del_name = input('请输入要删除的学员姓名：')

    # 声明info是全局变量
    global info

    for i in info:
        if del_name == i['name']:
            info.remove(i)
            print(f'学员{del_name}的信息已删除')
            break
    else:
        print('该学员不存在！')
    print(info)

# 修改学员信息
def modify_info():
    # 用户输入要修改的学员的姓名
    modify_name = input('请输入要修改的学员姓名：')
    # 声明info是全局变量
    global info

    for i in info:
        if modify_name == i['name']:
            i['tel'] = input('请输入新的手机号: ')
            print(f'学员{modify_name}的手机号已修改')
            break
    else:
        print('该学员不存在！')
    print(info)

# 查询学员信息
def search_info():
    # 用户输入要修改的学员的姓名
    modify_name = input('请输入要查找的学员姓名：')
    # 声明info是全局变量
    global info

    for i in info:
        if modify_name == i['name']:
            print('查找到的学员信息如下：----------')
            print(f"该学员的学号是{i['id']}, 姓名是{i['name']}, 手机号是{i['tel']}")
            break
    else:
        print('该学员不存在！')
    print(info)


def print_all():
    """ 显示所有学员信息 """
    print('学号\t姓名\t手机号')
    for i in info:
        print(f'{i["id"]}\t{i["name"]}\t{i["tel"]}')

# 用户输入功能序号
while True:
    show_func()
    func_num = int(input('请输入功能序号：'))
    if func_num == 6:
        exit_flag = input('确定要退出吗？[y/n]')
        if exit_flag == 'y':
            print("退出系统中ing")
            break
    elif func_execute_dict.get(func_num) is not None:
        eval(func_execute_dict.get(func_num))
    else:
        print('输入错误，请重新输入!!!')

